大家有碰過軟體平常用的好好的,突然間就壞掉了?處理的SOP,關掉再試一次,不行?重開Windows再試一次,還不行?只能打電話去機房罵人了『你們肯定有包乖乖剛剛過期啦!快找出來』。最後一項,解決了問題我還能理解,但前兩項為什麼解決了問題?很可怕,不要問,因為我答不出來......
為什麼出錯大家會想再試一次?因為經驗告訴我們,這通常是有用的!
本篇同步發表於:http://www.gibar.co/2014/10/jenkins-naginator-plugin.html
前一篇 [ Jenkins 作業逾時/超時處理 - Build-timeout Plugin ] 我們提到了作業逾時的問題,像這類的問題,95%應該重試都可以回復正常,有可能就只是當時網路有點不順暢罷了。雖然你只要回到Jenkins,再親自按下建置,這作業就又會重新開始運作,但我真心的希望Jenkins至少能幫我再試一次!本篇要介紹的是Naginator Plugin,專門幫我們在作業失敗時安排重試。
本篇使用外掛
作業失敗時,重試建置
重試,是屬於作業完成後(post-build) 的設定,所以我們可以在『新增建置後動作』的裡面找到『Retry build after failure』,設定的項目不多
其中重試等待時間還有子項目設定
It's work! 重試的作業會有特別的圖示標記
重試是很簡單,但如果造成問題時也會很麻煩,首先無止盡的重試是絕對不可能有用的。再來,若是在負載繁重的作業點的重試,是否引發資源不足?讓結果又回到上一篇死結的現象。重試不一定要在幾分鐘內開始,你可以讓他拖上一陣子是沒問題的。
逾時與重試,這兩篇是很簡單議題。但對一套商轉的Jenkins服務,如果需要人盯著是否有逾時,然後再手動去中止與重啟作業......這就不是Jenkins的美意了,然而我真的為這件事盯了三個月之久,那是個辛苦的往事......
經過兩天比較簡單的主題,為了寫一個麻煩的進階主題,Matrix。新增作業,目前為止我們都只用到了Free-Style來建立,其中一個『建立多重設定專案』到底是怎麼個多重法?可以做什麼樣的事?這應該值得我們拆成幾集,好好的跟大家講講。
下一篇:駭客任務 - 利用Jenkins進行相依性測試 (上)
本篇同步發表於:http://www.gibar.co/2014/10/jenkins-naginator-plugin.html